package dp2.tablet.proyecto.gestores;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ExecutionException;

import org.json.JSONArray;
import org.json.JSONException;

import dp2.tablet.proyecto.AnularTicket;
import dp2.tablet.proyecto.bean.ClienteVentaBean;
import dp2.tablet.proyecto.bean.EntradaBean;
import dp2.tablet.proyecto.bean.ZonaBean;
import dp2.tablet.proyecto.util.JSONActualizarTicket;
import dp2.tablet.proyecto.util.JSONAnularTicket;
import dp2.tablet.proyecto.util.JSONAnularTicketListener;
import dp2.tablet.proyecto.util.JSONCanjear;
import dp2.tablet.proyecto.util.JSONCanjearListener;
import dp2.tablet.proyecto.util.JSONReader;

public class GestoEntradaAnular {
	private List<EntradaBean> Entradas=null;
	
	public List<EntradaBean> getEntradas() {
	    return this.Entradas;
	}
	
	public void setEntradas(List<EntradaBean> entradas) {
	    this.Entradas = entradas;
	}
	
	public static String AnularTicket(List<EntradaBean> entradas){
		//JSONArray jEntradas=null;
		String mensaje="";
		try {
		for (int cont=0; cont<entradas.size(); cont++){	
			int codTicket=entradas.get(cont).getIntId();
			
			new JSONActualizarTicket().execute("http://200.16.7.112:3000/sales_management/sales_points/cambiarEstadoTicket/"+codTicket+"/3.json").get();
		}
		}catch (Throwable t) {
  			 mensaje=t.toString();
		} 
		return mensaje;
	}
	
	
	public static List<EntradaBean> consultarCanjes(String codigo, int opcion, ClienteVentaBean aux,AnularTicket ventana){
		List<EntradaBean> entradas=new ArrayList<EntradaBean>();
		JSONArray jEntradas=null;
		try {
			
			JSONAnularTicket reader = new JSONAnularTicket();
			
			reader.setJSONReaderListener((JSONAnularTicketListener)ventana);//TE DEVUELVE LOS QUE ESTAN EN ESTADO 1 
			jEntradas=(reader.execute("http://200.16.7.112:3000/sales_management/sales_points/dameEntradasClienteDNIAll/"+codigo+".json")).get();
			//Considerando solo para los DNIS
		} catch (InterruptedException e1) {
			e1.printStackTrace();
	//		return;
		} catch (ExecutionException e1) {
			e1.printStackTrace();
//			return;
		}

		try{
			for(int i=0;i < jEntradas.length();i++){
			 if (jEntradas.getJSONObject(i).getInt("estado")== 1 ){ //|| jEntradas.getJSONObject(i).getInt("estado")== 1
				EntradaBean entrada = new EntradaBean();
				//EventoBean auxEvento=new EventoBean();
				//entrada.setObjEvento(auxEvento);
				
				ZonaBean auxZona=new ZonaBean();
				entrada.setObjZona(auxZona);//sss
				
				aux.setNombre(jEntradas.getJSONObject(i).getString("client_name"));
				aux.setNumDocumento(Integer.parseInt(jEntradas.getJSONObject(i).getString("DocIdent")));
				aux.setTipoDoc(jEntradas.getJSONObject(i).getString("tipodoc"));
				
				entrada.setStrNombreEvento(jEntradas.getJSONObject(i).getString("nombre_evento"));
				entrada.setFltTarifa((float)jEntradas.getJSONObject(i).getDouble("monto"));
				//entrada.setFltMonto(fltMonto)
				//Esta linea fue agregada
				entrada.setIntId(jEntradas.getJSONObject(i).getInt("id"));
    			SimpleDateFormat formatoDelTexto = new SimpleDateFormat("yyyy-MM-dd");
    			//"2012-06-08T08:00:00Z"
				try {
					entrada.setDteDia(formatoDelTexto.parse(jEntradas.getJSONObject(i).getString("hora_inicio")));
				} catch (ParseException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				formatoDelTexto=new SimpleDateFormat( "HH:mm:ss" );
				//entrada.setDteHoraInicio(formatoDelTexto.parse(jEntradas.getJSONObject(i).getString("hora_inicio")));
    			entrada.getObjZona().setStrNombre(jEntradas.getJSONObject(i).getString("nombre_zona"));
    			try {entrada.setIntAsiento(Integer.parseInt(jEntradas.getJSONObject(i).getString("numero_asiento")));}
    			catch(Exception e){entrada.setIntAsiento(0);}
    			entradas.add(entrada);
			 }
				//lstEntradas.add(entrada);
				
			}					
    			//Time(18,0,0)
			
			} catch (JSONException e) {
				e.printStackTrace();
			}
			
		return entradas;
	}

}
